package co.yixiang.yshop.module.crm.controller.admin.basestorage.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 仓库 Response VO")
@Data
@ExcelIgnoreUnannotated
public class BaseStorageRespVO {

    @Schema(description = "仓库ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("仓库ID")
    private Integer storageId;

    @Schema(description = "仓库编码", example = "WH001")
    @ExcelProperty("仓库编码")
    private String storageCode;

    @Schema(description = "仓库名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "主仓库")
    @ExcelProperty("仓库名称")
    private String storageName;

    @Schema(description = "仓库地址")
    @ExcelProperty("仓库地址")
    private String storageAddress;

    @Schema(description = "仓库类型")
    @ExcelProperty("仓库类型")
    private String storageType;

    @Schema(description = "仓库金额")
    @ExcelProperty("仓库金额")
    private BigDecimal storageMoney;

    @Schema(description = "仓库星级")
    @ExcelProperty("仓库星级")
    private Integer storageStar;

    @Schema(description = "管家星级")
    @ExcelProperty("管家星级")
    private Integer housekeeperStar;

    @Schema(description = "服务热线")
    @ExcelProperty("服务热线")
    private String serviceHotline;

    @Schema(description = "省份ID")
    @ExcelProperty("省份ID")
    private Integer provinceId;

    @Schema(description = "省份名称")
    @ExcelProperty("省份名称")
    private String provinceName;

    @Schema(description = "城市ID")
    @ExcelProperty("城市ID")
    private Integer cityId;

    @Schema(description = "城市名称")
    @ExcelProperty("城市名称")
    private String cityName;

    @Schema(description = "区域ID")
    @ExcelProperty("区域ID")
    private Integer regionId;

    @Schema(description = "区域名称")
    @ExcelProperty("区域名称")
    private String regionName;

    @Schema(description = "经度")
    @ExcelProperty("经度")
    private BigDecimal longitude;

    @Schema(description = "纬度")
    @ExcelProperty("纬度")
    private BigDecimal latitude;

    @Schema(description = "促销折扣")
    @ExcelProperty("促销折扣")
    private BigDecimal promotionalDiscount;

    @Schema(description = "促销开始时间")
    @ExcelProperty("促销开始时间")
    private LocalDateTime promotionalStartTime;

    @Schema(description = "促销结束时间")
    @ExcelProperty("促销结束时间")
    private LocalDateTime promotionalEndTime;

    @Schema(description = "促销详情")
    @ExcelProperty("促销详情")
    private String promotionalDetails;

    @Schema(description = "联系人姓名")
    @ExcelProperty("联系人姓名")
    private String contactName;

    @Schema(description = "联系人手机号")
    @ExcelProperty("联系人手机号")
    private String contactMobileNo;

    @Schema(description = "地图详情")
    @ExcelProperty("地图详情")
    private String mapDetails;

    @Schema(description = "父级ID", example = "0")
    @ExcelProperty("父级ID")
    private Integer parentId;

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "排序号")
    @ExcelProperty("排序号")
    private Integer orderNo;

    @Schema(description = "是否启用", example = "1")
    @ExcelProperty("是否启用")
    private Integer enable;

    @Schema(description = "是否托盘管理", example = "1")
    @ExcelProperty("是否托盘管理")
    private Integer isPlateManager;

    @Schema(description = "是否区域", example = "1")
    @ExcelProperty("是否区域")
    private Integer isArea;

    @Schema(description = "是否货架", example = "1")
    @ExcelProperty("是否货架")
    private Integer isShelves;

    @Schema(description = "区域规则")
    @ExcelProperty("区域规则")
    private String areaRegular;

    @Schema(description = "货架规则")
    @ExcelProperty("货架规则")
    private String shelvesRegular;

    @Schema(description = "位置规则")
    @ExcelProperty("位置规则")
    private String positionRegular;

    @Schema(description = "通道规则")
    @ExcelProperty("通道规则")
    private String channelRegular;

    @Schema(description = "行规则")
    @ExcelProperty("行规则")
    private String rowRegular;

    @Schema(description = "列规则")
    @ExcelProperty("列规则")
    private String columnRegular;

    @Schema(description = "仓库URL")
    @ExcelProperty("仓库URL")
    private String storageUrl;

    @Schema(description = "仓库地图")
    @ExcelProperty("仓库地图")
    private String storageMap;

    @Schema(description = "开户银行")
    @ExcelProperty("开户银行")
    private String accountBank;

    @Schema(description = "账户名称")
    @ExcelProperty("账户名称")
    private String accountName;

    @Schema(description = "账户号码")
    @ExcelProperty("账户号码")
    private String accountNumber;

    @Schema(description = "对公开户银行")
    @ExcelProperty("对公开户银行")
    private String publicAccountBank;

    @Schema(description = "对公账户名称")
    @ExcelProperty("对公账户名称")
    private String publicAccountName;

    @Schema(description = "对公账户号码")
    @ExcelProperty("对公账户号码")
    private String publicAccountNumber;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    @ExcelProperty("更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "创建人")
    private String createByName;

    @Schema(description = "更新人")
    private String updateByName;

} 